Skip to content

feat: expand Admin service with control-plane RPCs - #113

Merged
lizhimins merged 1 commit into
apache:mainfrom
lizhimins:feature/admin-service-control-plane
Jul 29, 2026
Merged

feat: expand Admin service with control-plane RPCs#113
lizhimins merged 1 commit into
apache:mainfrom
lizhimins:feature/admin-service-control-plane

Conversation

@lizhimins

Copy link
Copy Markdown
Member

Summary

Today the gRPC Admin service only exposes a single ChangeLogLevel RPC, while all cluster administration and diagnostics still go through the legacy Remoting binary protocol. This PR expands admin.proto into a full control-plane surface so that management operations can share the same gRPC + Protobuf stack as the data plane, lowering the bar for multi-language admin tooling.

Adds 15 RPCs to service Admin:

  • Topic: DescribeTopicStatus, GetTopicRoute
  • Subscription: ListSubscription, DescribeSubscription, DeleteSubscription
  • Consumption / lag: DescribeGroupAccumulation, QueryTimeSpan, ResetGroupOffset
  • Message: QueryMessage, AdminSendMessage
  • Client diagnostics: ListConsumerConnection, GetConsumerRunningInfo, PrintThreadStackTrace, VerifyMessage
  • Runtime: GetProxyRuntimeStats

Design notes:

  • All request/response messages reuse existing definition.proto types (Resource, Status, FilterExpression, MessageQueue, Message, SystemProperties, MessageType).
  • Every message, field and RPC is documented with inline comments.
  • No multi-tenant / vendor-specific fields are included; names map directly to broker resources.

Points for discussion

  • This PR re-introduces a MessageModel enum (CLUSTERING / BROADCASTING) local to admin.proto for subscription/consumer diagnostics. ChangeLog item 8 removed MessageModel from the data plane; reviewers may prefer a different name or placement.
  • GetProxyRuntimeStats is named after the proxy deployment; open to renaming (e.g. GetRuntimeStats) if a broker-embedded gateway is preferred.
  • Server-side implementation and CRUD operations (CreateTopic/DeleteTopic/CreateGroup, GetClusterInfo) are intentionally out of scope and can follow in later PRs.

Verification

  • bazel build //:rocketmq_v2_proto — passes
  • bazel build //java:rocketmq-proto — passes, generates AdminGrpc stubs

Extend the gRPC Admin service from a single ChangeLogLevel RPC to a full
control-plane surface for cluster administration and diagnostics, adding 15
RPCs: DescribeTopicStatus, ListSubscription, DescribeSubscription,
DeleteSubscription, DescribeGroupAccumulation, ListConsumerConnection,
ResetGroupOffset, QueryMessage, PrintThreadStackTrace, VerifyMessage,
AdminSendMessage, GetConsumerRunningInfo, GetTopicRoute, QueryTimeSpan and
GetProxyRuntimeStats.

All request/response messages reuse existing types from definition.proto
(Resource, Status, FilterExpression, MessageQueue, Message, SystemProperties,
MessageType) and are documented with inline comments.
@fanlunyong

fanlunyong commented Jul 24, 2026 via email

Copy link
Copy Markdown

@lizhimins
lizhimins merged commit e4994fe into apache:main Jul 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants